package common;

import lombok.Data;
import pojo.Doctor;

@Data
public class Result<D> {
    // 通用业务状态码（200成功，500失败）
    private int code;
    // 业务提示信息
    private String msg;
    // 响应数据体（泛型支持）
    private D data;

    // 成功响应（带自定义消息）
    public static <D> Result<D> ok(String msg, D data) {
        Result<D> result = new Result<>();
        result.code = 200;
        result.msg = msg;
        result.data = data;
        return result;
    }

    // 成功响应（默认消息）
    public static <D> Result<D> ok(D data) {
        return ok("操作成功", data);
    }

    // 失败响应（自定义错误消息）
    public static <D> Result<D> fail(String msg) {
        Result<D> result = new Result<>();
        result.code = 500;
        result.msg = msg;
        return result;
    }

    // 【修正】医生查询空结果响应（通用失败方法已覆盖，可直接用 fail）
    public static Result<Doctor> error(String msg) {
        return fail(msg);
    }

    // 【新增】医生查询成功响应（通用成功方法已覆盖，可直接用 ok）
    public static Result<Doctor> success(Doctor doctor) {
        return ok(doctor);
    }
}